package com.lagou.homework.modulethree.third;

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

/*
 * @className StudentTest
 * @description
 * @author admin
 * @date 2022/3/26 13:29
 * */
public class StudentTest {

    public static void main(String[] args) {

        // 1.创建Map类型的引用指向HashMap类型的对象
        Map<Student, String> map = new HashMap<>();

        // 2.向map集合添加数据
        map.put(new Student("学生1", 18), "河南");
        map.put(new Student("学生2", 19), "福建");
        map.put(new Student("学生3", 17), "北京");
        map.put(new Student("学生4", 20), "江苏");

        // 3.第一种遍历方式toString()方法
        System.out.println(map.toString());


        System.out.println("---------------------------------");
        // 4.第二种遍历方式 获取map集合中所有的key组成set视图
        Set<Student> set = map.keySet();
        for (Student s : set) {
            System.out.println(s.getName()+","+s.getAge() + "::" + map.get(s));
        }
        System.out.println("---------------------------------");

        // 5.第三种遍历方式 获取map集合中所有的value组成Collection视图
        Collection<String> collection = map.values();
        for (String str : collection) {
            System.out.println("::" + str);
        }

        System.out.println("---------------------------------");
        // 6.第四种遍历方式 获取map集中中的键值对组成set视图
        Set<Map.Entry<Student, String>> entries = map.entrySet();
        for (Map.Entry<Student, String> me : entries){
            Student s = me.getKey();
            System.out.println(s.getName()+","+s.getAge()+"::"+me.getValue());
        }
    }
}
